<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Escape-Sequenz</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Escape-Sequenz"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Escape-Sequenz rootpage-Escape-Sequenz skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Escape-Sequenz</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Eine <b>Escape-Sequenz</b> (nach dem <a href="Escape_(Steuerzeichen)" title="Escape (Steuerzeichen)">Escape-Zeichen</a>, <span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">to escape</span> <span lang="de" style="font-style:normal;font-weight:normal">‚entkommen‘</span>) ist eine Zeichenkombination in der <a href="Technische_Informatik" title="Technische Informatik">technischen Informatik</a>, die keinen Text repräsentiert, sondern vom Gerät abgefangen wird und eine Sonderfunktion ausführt. Bei einem <a href="Terminal_(Computer)" title="Terminal (Computer)">Bildschirmterminal</a> kann dies z. B. die <a href="Cursor" title="Cursor">Cursor</a>-Positionierung sein, bei einem <a href="Drucker_(Ger%C3%A4t)" title="Drucker (Gerät)">Drucker</a> die Umschaltung auf eine andere Schriftgröße oder das Auswerfen der Seite.
</p><p>Als <span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">Escaping</span> wird auch die Nutzung eines <a href="Maskierungszeichen" title="Maskierungszeichen">Maskierungszeichens</a> bezeichnet, das ebenfalls eine Escape-Sequenz darstellt. Umgekehrt wird hier ein Zeichen, das normalerweise als Teil einer Sonderfunktion erkannt würde, ohne Funktion interpretiert.
</p>
<div class="mw-heading mw-heading2"><h2 id="Funktionsweise">Funktionsweise</h2></div>
<p>Der Name leitet sich von dem Zeichen ab, mit dem die Sequenz meistens eingeleitet wird; dem <a href="Escape_(Steuerzeichen)" title="Escape (Steuerzeichen)">ESC-Zeichen</a> (im <a href="ASCII" class="mw-redirect" title="ASCII">ASCII</a>-Zeichensatz <a href="Hexadezimalsystem" title="Hexadezimalsystem">Hexadezimal-Code</a> 1B, dezimal 27), welches spätestens seit 1968 als Umschaltzeichen zwischen normaler Bedeutung der Zeichen und Sonderfunktion benutzt wurde.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Das jeweilige Programm – unabhängig davon, ob es sich um eine Anwendung für Desktoprechner oder ein Steuerprogramm in einem <a href="Peripherieger%C3%A4t" title="Peripheriegerät">Peripheriegerät</a> handelt – erkennt beim Verarbeiten einer Zeichenfolge, zum Beispiel eines Textes, das Escape-Zeichen, steigt aus der normalen Verarbeitung aus und löst die der folgenden Zeichensequenz zugeordnete Sonderfunktion aus. Anschließend wird die normale Verarbeitung fortgesetzt. Während der Bearbeitung des Textes dagegen, zum Beispiel in einem <a href="Texteditor" title="Texteditor">Texteditor</a>, bleibt ein Escape-Zeichen als gewöhnliches Zeichen uninterpretiert und löst damit keine Funktion aus. Ein Sonderfall sind <a href="WYSIWYG" title="WYSIWYG">WYSIWYG</a>-Programme, zu denen beispielsweise moderne Textverarbeitungsprogramme zählen, bei denen die Anzeige direkt der Ausgabe mit allen Sonderfunktionen entspricht.
</p><p>Um beim Programmieren nicht-druckbare Steuerzeichen im <a href="Quelltext" title="Quelltext">Quelltext</a> darzustellen, wird bestimmten Folgen von druckbaren Zeichen die Bedeutung einer Sonderfunktion verliehen, indem ein (anderes) bestimmtes Zeichen vorangestellt wird, das als <a href="Maskierungszeichen" title="Maskierungszeichen">Maskierungszeichen</a> dient. So steht in der Programmiersprache <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a> innerhalb einer Zeichenkettenkonstanten beispielsweise ein <code>\n</code> für einen <a href="Zeilenumbruch" title="Zeilenumbruch">Zeilenumbruch</a>, ein <code>\t</code> für ein Horizontal-<a href="Tabulatorzeichen" title="Tabulatorzeichen">Tabulatorzeichen</a> und ein <code>\"</code> für ein <a href="Anf%C3%BChrungszeichen" title="Anführungszeichen">Anführungszeichen</a> (während das einfache <code>"</code> nicht Teil einer Zeichenketten-Konstanten ist, sondern deren Ende bezeichnet). Eine solche Zeichenfolge wird in Übertragung der alten Funktionsbezeichnung ebenfalls Escape-Sequenz genannt, obwohl das eigentliche ESC-Zeichen dabei keine Verwendung mehr findet. In ähnlicher Weise wird von <a href="Microsoft_Word" title="Microsoft Word">Microsoft Word</a> in der Bearbeitungsfunktion „Suchen und Ersetzen“ das Zeichen <code>^</code> verwendet, beispielsweise <code>^t</code> für das Horizontal-Tabulatorzeichen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Verwendung_zur_Druckersteuerung"><span id="Drucker"></span> Verwendung zur Druckersteuerung</h2></div>
<p>Nach wie vor werden Escape-Sequenzen bei der Ansteuerung von <a href="Drucker_(Ger%C3%A4t)" title="Drucker (Gerät)">Druckern</a> verwendet. Beispiele für weit verbreitete Escape-Sequenz-basierte Druckersprachen sind:
</p>
<ul><li><a href="ESC/P" title="ESC/P">ESC/P</a> (<a href="Epson" title="Epson">Epson</a>)</li>
<li><a href="Printer_Command_Language" title="Printer Command Language">PCL</a> (<a href="Hewlett-Packard" class="mw-redirect" title="Hewlett-Packard">Hewlett-Packard</a>)</li></ul>
<p>Manche Drucker arbeiten dagegen nicht mit Escape-Sequenzen, sondern beispielsweise mit Seitenbeschreibungssprachen wie <a href="PostScript" title="PostScript">PostScript</a> oder empfangen Befehle über eine separate Steueradresse auf dem <a href="Bus_(Datenverarbeitung)" title="Bus (Datenverarbeitung)">Bus</a> (z. B. bei <a href="Commodore_International" title="Commodore International">Commodore</a>-Rechnern).
</p><p>Beispiel: In der Drucksteuersprache PCL5 von Hewlett-Packard wird der Cursor mittels der Sequenz <code>ESC & a <i>Spaltennummer</i> C</code> horizontal in einer bestimmten Textspalte positioniert.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Verwendung_zur_Terminalsteuerung"><span id="Terminal"></span> Verwendung zur Terminalsteuerung</h2></div>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→ </span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="ANSI-Escapesequenz" title="ANSI-Escapesequenz">ANSI-Escapesequenz</a></i></div>
<p>Im Terminalbereich sind die ANSI-Escapesequenzen in einem Format weit verbreitet, das auf Standards basiert, die ursprünglich als <a href="ANSI" class="mw-redirect" title="ANSI">ANSI</a> X3.41-1974 und X3.64-1977 bzw. <a href="Ecma_International" title="Ecma International">ECMA</a>-48 (1976)<sup id="cite_ref-ECMA48_3-0" class="reference"><a href="#cite_note-ECMA48-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> veröffentlicht wurden. Die Sequenzen bestehen dabei aus dem <a href="Steuerzeichen" title="Steuerzeichen">Steuerzeichen</a> <a href="Escape-Taste" title="Escape-Taste">Escape</a> und einer Folge von druckbaren Zeichen. ECMA-48 erhielt 1991 seine fünfte und letzte Erweiterung<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> und wurde auch als ISO/IEC 6429 standardisiert.
</p><p>Die <a href="VT100" title="VT100">VT100</a> Terminals des Herstellers <a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">DEC</a> waren 1978 unter den ersten, deren Funktion auf diesem Standard beruhte.<sup id="cite_ref-vt100guide-kap3_5-0" class="reference"><a href="#cite_note-vt100guide-kap3-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Durch die Popularität des VT100 Terminals, wurden Terminalsysteme mit Escape-Sequenzen auf Basis des ECMA-48 Standards weit verbreitet.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Dieser Standard wurde so populär, dass <a href="Textmodus" title="Textmodus">Konsolentreiber</a> wie <a href="ANSI.SYS" title="ANSI.SYS">ANSI.SYS</a> für <a href="MS-DOS" title="MS-DOS">MS-DOS</a> (bzw. allgemein <a href="PC-kompatibles_DOS" title="PC-kompatibles DOS">PC-kompatibles DOS</a>), <a href="OS/2" title="OS/2">OS/2</a> und auch die Shell des <a href="AmigaOS" title="AmigaOS">AmigaOS</a> den Standard implementierten. Dadurch, dass das bei <a href="Unix" title="Unix">Unix</a>-artigen Betriebssysteme verbreitete <a href="Terminalemulation" title="Terminalemulation">Terminalemulationsprogramm</a> <a href="Xterm" title="Xterm">xterm</a> auf VT100 (und somit auf dem ANSI-Standard) basiert<sup id="cite_ref-invis-xterm_7-0" class="reference"><a href="#cite_note-invis-xterm-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>, arbeiten heute die virtuellen Konsolen und Terminal-Fenster der meisten Unix-artigen Betriebssysteme (wie beispielsweise <a href="MacOS" title="MacOS">macOS</a> und <a href="Linux" title="Linux">Linux</a>) mit Escape-Sequenzen in diesem Format. Erwähnenswert ist auch, dass so gut wie alle der genannten <a href="Terminal_(Computer)" title="Terminal (Computer)">Konsolen</a> und <a href="Terminalemulation" title="Terminalemulation">Terminals</a> in ihrer Implementierung inzwischen weit über den ursprünglichen ECMA-48 Standard hinausgehen und viele der Erweiterungen aus den späteren DEC Terminals unterstützen, wie z. B. dem VT420-Terminal.<sup id="cite_ref-invis-xterm_7-1" class="reference"><a href="#cite_note-invis-xterm-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> Auch die <a href="Cmd.exe" title="Cmd.exe">Eingabeaufforderung</a> von <a href="Microsoft_Windows_10" title="Microsoft Windows 10">Windows 10</a> unterstützt Escape-Sequenzen ab Version 1511 im erweiterten Umfang von xterm.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>Allerdings gab und gibt es für die Terminal-Steuerung auch andere, proprietäre auf Escape-Sequenzen basierende Formate, die jedoch nicht standardisiert wurden. Zum Beispiel unterscheidet sich Format der Wyse oder Televideo Terminals wesentlich vom ANSI-Standard. Diese Sequenzen bestehen aus meist zur zwei Zeichen, wobei bei längeren Sequenzen dasjenige Zeichen, das direkt auf das Escape-Zeichen folgt, die Funktion der Sequenz festlegt. Im Unterschied dazu ist es beim ANSI-Standard so, dass typischerweise erst das letzte Zeichen der Sequenz entscheidet, welche Funktion die Sequenz hat.<sup id="cite_ref-ansi-erklaert_9-0" class="reference"><a href="#cite_note-ansi-erklaert-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-vt100guide-kap3_5-1" class="reference"><a href="#cite_note-vt100guide-kap3-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-wyseqref_10-0" class="reference"><a href="#cite_note-wyseqref-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> Beispielsweise wird im ANSI-Standard der Cursor in eine bestimmte Position gestellt, indem der Server die Escape-Sequenz <code>ESC [ <i>zeile</i> ; <i>spalte</i> H</code> sendet.<sup id="cite_ref-vt100guide_11-0" class="reference"><a href="#cite_note-vt100guide-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Beim Wyse Terminal geschieht dies mit <code>ESC a <i>zeile</i> R <i>spalte</i> C</code>.<sup id="cite_ref-wyseqref-cursorpos_12-0" class="reference"><a href="#cite_note-wyseqref-cursorpos-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> In diesen Beispielen sind jeweils die Zeichen <code>H</code> und <code>a</code> funktionsentscheidend.
</p>
<div class="mw-heading mw-heading3"><h3 id="Beispiele">Beispiele</h3></div>
<p>Die folgende Tabelle enthält eine Gegenüberstellung einiger Sequenzen zur Terminalsteuerung in verschiedenen Formaten.<sup id="cite_ref-vt100guide-kap3_5-2" class="reference"><a href="#cite_note-vt100guide-kap3-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-wyseqref_10-1" class="reference"><a href="#cite_note-wyseqref-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-ansi-erklaert_9-1" class="reference"><a href="#cite_note-ansi-erklaert-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<table class="wikitable">
<tbody><tr>
<th>Funktion
</th>
<th>ANSI/VT100
</th>
<th>Wyse
</th></tr>
<tr>
<td>Bildschirm Löschen
</td>
<td><code>ESC [ 2 J</code>
</td>
<td><code>ESC T</code>
</td></tr>
<tr>
<td>Zeile ab Cursor löschen
</td>
<td><code>ESC [ K</code>
</td>
<td><code>ESC t</code>
</td></tr>
<tr>
<td>Cursor positionieren
</td>
<td><code>ESC [ <i>zeile</i> ; <i>spalte</i> H</code><br> <small>z. B.<code>ESC [ 5 ; 1 H</code></small>
</td>
<td><code>ESC a <i>zeile</i> R <i>spalte</i> C</code><br> <small>z. B.<code>ESC a 005 R 001 C</code></small>
</td></tr>
<tr>
<td>Nachfolgenden Text blinkend darstellen
</td>
<td><code>ESC [ 5 m</code>
</td>
<td><code>ESC G 2</code>
</td></tr>
<tr>
<td>Cursor um (Pn) Zeilen aufwärts,
</td>
<td><code>ESC [ <i>Pn</i> A</code><br> <small>z. B. <code>ESC [ 5 A</code></small>
</td>
<td><small><i>(keine Entsprechung)</i> </small>
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="In_C_und_verwandten_Programmiersprachen"><span id="C"></span>In C und verwandten Programmiersprachen</h2></div>
<p>In <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a> und zu C verwandten <a href="Programmiersprache" title="Programmiersprache">Programmiersprachen</a> wie <a href="C%2B%2B" title="C++">C++</a>, <a href="CSharp" class="mw-redirect" title="CSharp">C#</a>, <a href="Java_(Programmiersprache)" title="Java (Programmiersprache)">Java</a>, <a href="Awk" title="Awk">awk</a>, <a href="Perl_(Programmiersprache)" title="Perl (Programmiersprache)">Perl</a> und <a href="JavaScript" title="JavaScript">JavaScript</a> können in Zeichenfolgen durch folgende Escape-Sequenzen häufig benötigte Steuerzeichen eingefügt werden (wobei nicht alle dieser Sprachen alle hier aufgeführten Sequenzen unterstützen). In C selbst sind Escape-Sequenzen, auf Deutsch auch Flucht-Sequenzen, ein Teil des Ausführungszeichensatzes der Programmiersprache. Diese sind auch gemäß ANSI C standardisiert, obwohl manche Compiler (auf bestimmten Betriebssystemen) zusätzlich auch vom Standard abweichende Escape-Sequenzen verwenden können. Die Bezeichnungen vieler Steuerzeichen stammen noch aus der Zeit, als Ausgaben vorwiegend auf <a href="Fernschreiber" title="Fernschreiber">Fernschreibern</a> und <a href="Drucker_(Ger%C3%A4t)" title="Drucker (Gerät)">Druckern</a> erfolgten.
</p><p>In C und damit verwandten Programmiersprachen wird eine Escape-Sequenz mit dem <a href="Backslash" title="Backslash">Backslash</a>, Taste: <kbd style="background: #F7F7F7; color: #202122; background-image:linear-gradient(rgba(255,255,255,.4),rgba(127,127,127,.2)); border-color:#DDDDDD #AAAAAA #888888 #CCCCCC; border-radius:2px; border-style:solid; border-width:1px; font-family:inherit; padding:0 .4em; text-shadow:0 1px rgba(255,255,255,.2); white-space:nowrap;"><a href="Backslash" title="Backslash"> \</a></kbd>, eingeleitet.
</p>
<table class="wikitable">
<caption>Escape-Sequenzen in C und C++
</caption>
<tbody><tr>
<td><code>\a</code>
</td>
<td><a href="Bell_(Steuerzeichen)" title="Bell (Steuerzeichen)">akustisches Signal</a> (von englisch <i>alert</i>)
</td></tr>
<tr>
<td><code>\b</code>
</td>
<td><a href="Backspace" title="Backspace">Rückschritt</a> (von englisch <i>backspace</i>)
</td></tr>
<tr>
<td><code>\e</code> od.<br><code>\E</code>
</td>
<td>ANSI Escape, hexadezimal 0x1B
<p>Ein Escapezeichen für eine höhere Interpretationsebene, siehe oben. <i>Nicht</i> Bestandteil von ISO C und ISO C++!
</p>
</td></tr>
<tr>
<td><code>\f</code>
</td>
<td><a href="Seitenvorschub" title="Seitenvorschub">Seitenvorschub</a> (von englisch <i>form feed</i>)
</td></tr>
<tr>
<td><code>\n</code>
</td>
<td><a href="Zeilenvorschub" title="Zeilenvorschub">Zeilenvorschub</a> (von englisch <i>new line</i>)
</td></tr>
<tr>
<td><code>\r</code>
</td>
<td><a href="Wagenr%C3%BCcklauf" title="Wagenrücklauf">Wagenrücklauf</a> (von englisch <i>carriage return</i>)
</td></tr>
<tr>
<td><code>\t</code>
</td>
<td>Horizontal-<a href="Tabulatorzeichen" title="Tabulatorzeichen">Tabulatorzeichen</a> (von englisch <i>horizontal tabulator</i>)
</td></tr>
<tr>
<td><code>\v</code>
</td>
<td>Vertikal-Tabulatorzeichen (von englisch <i>vertical tabulator</i>)
</td></tr>
<tr>
<td><code>\x<i>hh..</i></code>
</td>
<td>Direkte Zeichenauswahl durch folgende Hexadezimalziffern <i>hh</i> (von he<b>x</b>adezimal). Beispiel: <code>\x40</code> entspricht dem Zeichen '@'.<br>Falls die so gebildete Hexadezimalzahl größer ist, als in einem Zeichen dargestellt werden kann, ist das Ergebnis implementierungsabhängig.
</td></tr>
<tr>
<td><code>\<i>ooo</i></code>
</td>
<td>Direkte Zeichenauswahl durch folgende ein bis drei <a href="Oktalsystem" title="Oktalsystem">Oktalziffern</a> <i>ooo</i>. Beispiel <code>\100</code> entspricht dem Zeichen '@'.<br>Die Kurzform mit einer oder zwei Oktalziffern kann nur benutzt werden, wenn keine weitere Oktalziffer folgt.<code>\0</code> (Nullzeichen, NUL) ist ein Spezialfall dieser Regel.
</td></tr>
<tr>
<td><code>\u<i>hhhh</i></code>
</td>
<td><a href="Unicode" title="Unicode">Unicode</a>-Zeichen; Es müssen stets vier <a href="Hexadezimalzahl" class="mw-redirect" title="Hexadezimalzahl">Hexadezimalziffern</a> <i>hhhh</i> folgen. Beispiel:<code>\u20ac</code> für das <a href="Euro" title="Euro">Euro</a>-Symbol U+20AC "€"
</td></tr>
<tr>
<td><code>\U<i>hhhhhhhh</i></code>
</td>
<td><a href="Unicode" title="Unicode">Unicode</a>-Zeichen, insbesondere wenn dieses außerhalb Plane 0 liegt; Es müssen stets acht Hexadezimalziffern folgen. Beispiel: <code>\U0001D49C</code> steht für das Unicode-Zeichen U+1D49C 𝒜 (<i>MATHEMATICAL SCRIPT CAPITAL A</i>)
</td></tr></tbody></table>
<p>Der Backslash (auch Rückstrich oder umgekehrter Schrägstrich) dient in dieser Form jedoch auch als <a href="Maskierungszeichen" title="Maskierungszeichen">Maskierungszeichen</a>, um Zeichen des Basis-Zeichensatzes von C, also alle Zeichen, die eigentlich eine Bedeutung und Funktion innehaben, auch ohne deren Funktion verwenden zu können; das betrifft auch den Backslash selbst. Das heißt, will man Teile der sog. Grafiksymbole von C, das sind die Zeichen <code>! " % & / ( ) [ ] { } \ ? = ' # + * ~ - _ . : ; , | < > ^</code>, als reines Textzeichen verwenden, so müssen diese (teilweise) mit dem Backslash als Maskierungszeichen verwendet werden.
</p>
<table class="wikitable">
<caption>Nutzung des Maskierungszeichens <code>\</code> in C und C++
</caption>
<tbody><tr>
<td><code>\'</code>
</td>
<td>Das Zeichen <code>'</code>, einfaches <a href="Anf%C3%BChrungszeichen" title="Anführungszeichen">Anführungszeichen</a>
</td></tr>
<tr>
<td><code>\"</code>
</td>
<td>Das Zeichen <code>"</code>, doppeltes Anführungszeichen
</td></tr>
<tr>
<td><code>\?</code>
</td>
<td>Das <a href="Fragezeichen" title="Fragezeichen">Fragezeichen</a> <code>?</code>
</td></tr>
<tr>
<td><code>\\</code>
</td>
<td>Das Zeichen <code>\</code>, <a href="Backslash" title="Backslash">Backslash</a> (umgekehrter Schrägstrich)
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Maskierungszeichen_zum_Verhindern_einer_Escape-Sequenz"><span id="Fluchtsymbol"></span><span id="Maskierungszeichen"></span> Maskierungszeichen zum Verhindern einer Escape-Sequenz</h2></div>
<div class="hauptartikel" role="navigation"><span class="hauptartikel-pfeil" title="siehe" aria-hidden="true" role="presentation">→ </span><i><span class="hauptartikel-text">Hauptartikel</span>: <a href="Fluchtsymbol" title="Fluchtsymbol">Fluchtsymbol</a></i></div>
<p>Da eine Escape-Sequenz durch mindestens eines der verfügbaren Zeichen eingeleitet wird, stehen fortan genau diese Zeichen nicht mehr für normalen Text zur Verfügung, da diese ja speziellen Funktionen zugeordnet werden (<a href="Funktionszeichen" class="mw-redirect" title="Funktionszeichen">Funktionszeichen</a>). Bei der Programmiersprache C ist dies der Backslash. Durch den Einfluss von C, der auch der starken Verbreitung geschuldet ist, finden sich dieselben Escape-Sequenzen auch in anderen Zusammenhängen wieder, z. B. in bestimmten Konfigurationsdateien oder auch auf einem <a href="Terminalemulation" title="Terminalemulation">Terminal</a> (z. B. unter <a href="Unix" title="Unix">Unix</a>, <a href="Linux" title="Linux">Linux</a> oder <a href="MacOS" title="MacOS">macOS</a>), u. a. bei der Angabe von <a href="Dateiname" title="Dateiname">Dateinamen</a>.
</p><p>Technisch gesehen ist ein Fluchtsymbol ein <a href="Maskierungszeichen" title="Maskierungszeichen">Maskierungszeichen</a>, das zwar ebenfalls eine Escape-Sequenz einleitet, jedoch ist die Funktion dieser Escape-Sequenz die, das ihr folgende Zeichen als Zeichen, nicht als dessen Funktion zu verwenden. Das Fluchtsymbol ermöglicht daher die Nutzung des ursprünglichen Zeichens ohne dessen zugeordnete Funktion.
</p><p>Beispiel:
</p>
<pre>user@computer:~$ <a href="Touch_(Unix)" title="Touch (Unix)">touch</a> $HOME/Dokumente/Eine\ Datei\ mit\ Leerzeichen\ und\ einem\ \"Fragezeichen\"\?.txt
</pre>
<p>Dieser Befehl erstellt unter <a href="Unixoides_System" title="Unixoides System">unixartigen Systemen</a> (z. B. <a href="Linux" title="Linux">Linux</a> oder <a href="MacOS" title="MacOS">macOS</a>) im <a href="Benutzerverzeichnis" title="Benutzerverzeichnis">Benutzerverzeichnis</a> die Datei <code>Eine Datei mit Leerzeichen und einem "Fragezeichen"?.txt</code> im Verzeichnis <code>Dokumente</code> (das Verzeichnis muss allerdings bereits existieren). Da auf einem Terminal das <a href="Leerzeichen" title="Leerzeichen">Leerzeichen</a> als <a href="Trennzeichen" title="Trennzeichen">Trennzeichen</a> interpretiert wird, muss es <i>maskiert</i> werden (<span style="font-style:normal;font-weight:normal"><a href="Englische_Sprache" title="Englische Sprache">englisch</a></span> <span lang="en-Latn" style="font-style:italic">the character has to be escaped</span>). Ebenso verhält es sich mit dem <a href="Anf%C3%BChrungszeichen" title="Anführungszeichen">Anführungszeichen</a> in einem Dateinamen: Da es normalerweise eine <a href="Zeichenkette" title="Zeichenkette">Zeichenkette</a> einleitet und beendet, muss es maskiert werden, um als Zeichen verwendet zu werden. Und das <a href="Fragezeichen" title="Fragezeichen">Fragezeichen</a> wird normalerweise als <a href="Wildcard_(Informatik)" title="Wildcard (Informatik)">Wildcard</a> interpretiert.
</p><p>Im <a href="World_Wide_Web" title="World Wide Web">World Wide Web</a> übernimmt das <a href="Prozentzeichen" title="Prozentzeichen">Prozentzeichen</a> eine ähnliche Funktion beim <a href="URL-Encoding" title="URL-Encoding">URL-Encoding</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li>Code Codex: <a rel="nofollow" class="external autonumber" href="https://web.archive.org/web/20160308005154/http://www.codecodex.com/wiki/Escape_sequences_and_escape_characters">[1]</a> – Liste von Escape-Sequenzen in verschiedenen Computersprachen</li>
<li><a rel="nofollow" class="external text" href="https://files.support.epson.com/pdf/general/escp2ref.pdf">Epson ESC/P Reference</a> (PDF; 6,3 MB)</li>
<li><a rel="nofollow" class="external text" href="http://www.hp.com/ctg/Manual/bpl13210.pdf">HP PCL/PJL Reference (PCL 5 Printer Language) – Technical Reference Manual Part I (bpl13210)</a> (englisch, PDF, 2,97 MB)</li>
<li><a rel="nofollow" class="external text" href="https://www.degraeve.com/reference/specialcharacters.php">Escape-Sequenzen: Sonderzeichen für Verwendung in URL</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">Computermuseum München: <a rel="nofollow" class="external text" href="http://www.computermuseum-muenchen.de/computer/epson/index.html"><i>Geschichte der Seiko Epson Corporation</i></a></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.hp.com/ctg/Manual/bpl13210.pdf">HP PCL/PJL Reference</a> Seite 6-5 (englisch, PDF, 2,97 MB)</span>
</li>
<li id="cite_note-ECMA48-3"><span class="mw-cite-backlink"><a href="#cite_ref-ECMA48_3-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://ecma-international.org/publications-and-standards/standards/ecma-48/">ECMA-48</a> (englisch)</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf#page=67"><i>Standard ECMA-48 Fifth Edition – June 1991 – Control Functions for Coded Character Sets.</i></a> (PDF) Ecma International, Juni 1991, <span style="white-space:nowrap;">S. 53–54</span>,<span class="Abrufdatum"> abgerufen am 5. Mai 2015</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AEscape-Sequenz&rft.title=Standard+ECMA-48+Fifth+Edition+%E2%80%93+June+1991+%E2%80%93+Control+Functions+for+Coded+Character+Sets&rft.description=Standard+ECMA-48+Fifth+Edition+%E2%80%93+June+1991+%E2%80%93+Control+Functions+for+Coded+Character+Sets&rft.identifier=http%3A%2F%2Fwww.ecma-international.org%2Fpublications%2Ffiles%2FECMA-ST%2FEcma-048.pdf%23page%3D67&rft.publisher=Ecma+International&rft.date=1991-06&rft.language=en"> </span></span>
</li>
<li id="cite_note-vt100guide-kap3-5"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-vt100guide-kap3_5-0">a</a></sup> <sup><a href="#cite_ref-vt100guide-kap3_5-1">b</a></sup> <sup><a href="#cite_ref-vt100guide-kap3_5-2">c</a></sup></span> <span class="reference-text">Digital Equipment Corporation: <a rel="nofollow" class="external text" href="https://bitsavers.org/pdf/dec/terminal/vt100/EK-VT100-UG-001_VT100_User_Guide_Aug78.pdf">VT100 Users Guide</a> Kapitel 3 (englisch, PDF)</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://invisible-island.net/archives/shuford/terminal/dec.html">DEC Terminals</a> (englisch)</span>
</li>
<li id="cite_note-invis-xterm-7"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-invis-xterm_7-0">a</a></sup> <sup><a href="#cite_ref-invis-xterm_7-1">b</a></sup></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://invisible-island.net/xterm/">Invisible Island: Xterm</a> (englisch)</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://learn.microsoft.com/de-de/powershell/module/microsoft.powershell.core/about/about_ansi_terminals?view=powershell-5.1#ansi-terminal-support">Über ANSI Terminals: Ansi-Terminal Support</a></span>
</li>
<li id="cite_note-ansi-erklaert-9"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-ansi-erklaert_9-0">a</a></sup> <sup><a href="#cite_ref-ansi-erklaert_9-1">b</a></sup></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.emtec.com/common/article.de.html?a=article-0005-terminal-esc-sequences.de.md#escapesequenzen-erklaert-anhand-von-ansivt100-terminals">Esc-Sequenzen erklärt anhand von ANSI/VT100 Terminals</a></span>
</li>
<li id="cite_note-wyseqref-10"><span class="mw-cite-backlink">↑ <sup><a href="#cite_ref-wyseqref_10-0">a</a></sup> <sup><a href="#cite_ref-wyseqref_10-1">b</a></sup></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://vt100.net/wyse/wy-50-qrg.pdf">Wyse-50 Quick-Reference</a> Seite 17 ff, (englisch)</span>
</li>
<li id="cite_note-vt100guide-11"><span class="mw-cite-backlink"><a href="#cite_ref-vt100guide_11-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://bitsavers.org/pdf/dec/terminal/vt100/EK-VT100-UG-001_VT100_User_Guide_Aug78.pdf">VT100 Users Guide</a> Seite 3-18 (englisch, PDF)</span>
</li>
<li id="cite_note-wyseqref-cursorpos-12"><span class="mw-cite-backlink"><a href="#cite_ref-wyseqref-cursorpos_12-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://vt100.net/wyse/wy-50-qrg.pdf">Wyse-50 Quick-Reference</a> Seite 9 (englisch)</span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-11-24" href="https://de.wikipedia.org/wiki/?title=Escape-Sequenz&oldid=261844653">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>